The present invention relates generally to computing networks and more particularly to methods for managing events in a distributed computing environment domain.
It is well known to interconnect multiple computers into a local area network (LAN) to enable such computers to exchange information and share resources. A local area network provides a distributed computing environment in which users can access distributed resources and process applications on multiple computers. An xe2x80x9ceventxe2x80x9d marks a change in state of some managed resource in the environment.
A known distributed computing environment, called DCE, has been implemented using software available from the Open Systems Foundation (OSF). Prior OSF DCE computer network implementations provide event services on a local level only. Thus, events generated on a particular machine in the network are only logged or displayed on the machine itself. Other machines in the network have no efficient means for receiving notification when events occur in remote resources in the network. This deficiency makes it difficult for a system manager to remotely manage other resources in the network.
There are event service architectures known in the prior art. One known architecture is the DME Event Service (EVS), which is described in xe2x80x9cDME Event Services Architecture, Version 2.0xe2x80x9d by Ferrante, dated Apr. 28, 1993. This service uses the concept of event suppliers (who produce event data) and event consumers (who process event data generated by the suppliers), but the service has a cumbersome subscription mechanism, is complex and cannot be integrated into other existing DCE services. Another known architecture is the OMG Event Service model, which is described in the xe2x80x9cJoint Object Services Submissionxe2x80x94Event Service Specification,xe2x80x9dOMG TC 93.7.3, dated Jul. 2, 1993. This architecture provides an object-based event service that defines two basic models for communicating event data: the push model, which allows event suppliers to initiate the transfer of events to consumers, and the pull model, which allows event consumers to request events from event suppliers. Theoretically, an event channel object allows multiple suppliers to communicate with multiple consumers in an asynchronous way. The main drawback to the OMG Event Service model is that there are no currently-available implementations.
There remains a need to provide event management services for both traditional and object-oriented system architectures wherein managed resources can send asynchronous notifications or xe2x80x9ceventsxe2x80x9d to interested parties.
It is thus a primary object of the present invention to allow multiple event suppliers to communicate with multiple event consumers in an asynchronous fashion in a distributed computing environment.
It is a another more specific object of the invention to tightly integrate an event management service into an existing distributed computing environment event service to transparently supply events in an asynchronous manner to authorized, remote event consumers.
It is a further object of this invention to communicate events between event supplier and event consumer by issuing remote DCE procedure calls (RPC""s).
It is still another object of the present invention to provide a DCE RPC-based asynchronous event management service wherein event suppliers and consumers are authenticated prior to using the service by a DCE security service.
It is yet a further more specific object of the invention to integrate an event management service into a DCE network implementation using event forwarding, security and remote procedure call services in the DCE network.
It is still another object of the invention to filter events generated by one or more event suppliers to determine whether particular events are communicated to one or more event consumers.
According to another more specific object of the invention, event consumers can locate and register with one or more event management services running on multiple host computers in the network. Event consumers can control which host computers send events and the particular types of events sent.
It is still another object of the invention to manage events wherein event suppliers are not aware of the event consumers that have registered to receive events. Preferably, a particular supplier need only send an event once to ensure that interested event consumers receive notification of that event.
It is a more general object of the Invention to reliably deliver events to consumers with minimal network and system load, and in a manner that is tolerant of network and machine failures.
In one illustrative embodiment, a method of managing events in a distributed computing environment is provided wherein one or more event suppliers generate events to be consumed by one or more event consumers. The method begins by having an event consumer register with an event management service (EMS) to receive selected events generated from the one or more event suppliers. In response to a remote procedure call (RPC) from a DCE event recording service, the event management service uses a filtering mechanism to determine whether the event associated with the RPC has been selected by the event consumer, If the EMS determines that the event data associated with the RPC has been selected by the event consumer, it issues a remote procedure call to supply the event data to the event consumer. When multiple event consumers register with the event management service, events occurring on remote machines in the network are asynchronously and transparently supplied to event consumers.
In the preferred embodiment, the event management service is tightly coupled to a DCE event recording service, although this integration is not necessarily required as the event management service may be accessed directly. Also, it is preferred (although not required) that suppliers and consumers be authenticated in connection with registering with the event management service, and such authentication may advantageously be carried out by a DCE security service. Thus, preferably the event management service takes advantage of existing event recording, security and remote procedure call services in the DCE network to provide efficient asynchronous event management.
According to another more specific feature of the invention, a novel filter mechanism is provided to control how event data generated by the event suppliers is passed to particular event consumers. According to this aspect of the invention, each event consumer that registers with the service defines an event filter group that determines whether particular events generated by the one or more event suppliers are communicated to that event consumer. An event filter group includes one or more event filters, each of which is derived from one or more predefined event type schemas and/or information in a header associated with each event. The filter mechanism parses events through the event filter groups of the event consumers. Events that satisfy the parsing protocol for a particular event consumer are communicated to that consumer via a remote procedure call.
In the event service, often multiple event consumers are interested in the same event data, yet event consumers may not be able to consume events as fast as they are transmitted from the service. In addition, it is desired that when sending an event, suppliers should not be blocked while trying to forward the event to EMS, and the event service should not be blocked while attempting to forward the event to interested consumers. To achieve these goals, the Event Management Service implements a novel queuing mechanism that utilizes a number of threads-based services including a process control routine to insure that neither event suppliers nor event consumers take any actions that block the event channel.
The foregoing has outlined some of the more pertinent objects of the present invention. These objects should be construed to be merely illustrative of some of the more prominent features and applications of the invention. Many other beneficial results can be attained by applying the disclosed invention in a different manner or modifying the invention as will be described. Accordingly, other objects and a fuller understanding of the invention may be had by referring to the following Detailed Description of the preferred embodiment.